'''
AB 是圆的一条弦，ABC形成一个弓形，在两行中分别输入AB和CD的长度，计算并输出该圆的半径，结果均严格保留小数点后2位有效数字，应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
'''

import math

AB = float(input())  # 弦长度
CD = float(input())  # 弓高度
############Begin###############
# 半弦长
AD =AB/2

# 半径
OA =(AD*AD+CD*CD)/(2*CD)
print(f'{OA:.2f}')
############End###############








'''
AB 是圆的一条弦，ABC形成一个弓形，在两行中分别输入AB和CD的长度，计算输出弓形面积的大小，结果均严格保留小数点后2位有效数字，应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
'''

import math

AB = float(input())  # 弦长度
CD = float(input())  # 弓高度

# 半弦长
AD = AB / 2
# 半径
OA = (AD ** 2 + CD ** 2) / (2 * CD)

# 圆心角
AOB = 2 * math.asin(AD / OA)
################Begin######################
sin_AOB_half = AD / OA
angle_AOB = 2 * math.asin(sin_AOB_half)

# 扇形AOB的面积
sector_area = (angle_AOB / (2 * math.pi)) * (math.pi * OA**2)

# 三角形△AOB的面积
triangle_area = 0.5 * OA**2 * math.sin(angle_AOB)

# 弓形面积
arch_area = sector_area - triangle_area

# 输出结果，保留两位小数
print(f"{arch_area:.2f}")